#!/bin/bash

# 连接本地MCP服务器的便捷脚本

echo "Boulder AI MCP Client - 本地服务器连接工具"
echo "============================================"

# 默认服务器配置
DEFAULT_SERVER="ws://localhost:8080"
SERVER_URI="$DEFAULT_SERVER"

# 解析命令行参数
while [[ $# -gt 0 ]]; do
    case $1 in
        -s|--server)
            SERVER_URI="$2"
            shift 2
            ;;
        -p|--port)
            SERVER_URI="ws://localhost:$2"
            shift 2
            ;;
        -h|--help)
            echo "使用方法: $0 [选项]"
            echo "选项:"
            echo "  -s, --server URI    指定服务器URI (默认: $DEFAULT_SERVER)"
            echo "  -p, --port PORT     指定本地端口 (默认: 8080)"
            echo "  -h, --help          显示此帮助信息"
            echo ""
            echo "示例:"
            echo "  $0                          # 连接到默认服务器"
            echo "  $0 -p 9000                  # 连接到本地端口9000"
            echo "  $0 -s ws://remote:8080      # 连接到远程服务器"
            exit 0
            ;;
        *)
            echo "未知选项: $1"
            echo "使用 $0 --help 查看帮助"
            exit 1
            ;;
    esac
done

echo "目标服务器: $SERVER_URI"
echo ""

# 检查Java环境
if ! command -v java &> /dev/null; then
    echo "错误: 未找到Java环境，请确保已安装Java 11或更高版本"
    exit 1
fi

# 检查Maven环境
if ! command -v mvn &> /dev/null; then
    echo "错误: 未找到Maven环境，请确保已安装Maven"
    exit 1
fi

echo "正在编译项目..."
mvn clean compile -q
if [ $? -ne 0 ]; then
    echo "错误: 项目编译失败"
    exit 1
fi

echo "编译完成，正在连接到MCP服务器..."
echo "按 Ctrl+C 可以中断连接"
echo ""

# 运行LocalServerExample
mvn exec:java \
    -Dexec.mainClass="com.boulderai.mcp.example.LocalServerExample" \
    -Dexec.args="$SERVER_URI" \
    -q

echo ""
echo "连接已断开"